热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

时差|联立_定位问题基于matlabchan算法fang算法taylor算法求解目标定位问题含Matlab源码2135期

篇首语:本文由编程笔记#小编为大家整理,主要介绍了定位问题基于matlabchan算法fang算法taylor算法求解目标定位问题含Matlab源码2135期相关的知识,希望对你有一定的参考

篇首语:本文由编程笔记#小编为大家整理,主要介绍了定位问题基于matlab chan算法fang算法taylor算法求解目标定位问题含Matlab源码 2135期相关的知识,希望对你有一定的参考价值。



一、chan+taylor算法移动基站无源定位简介

1 引言
随着无人机的普及,低空空域的安全问题受到人们的极大关注.针对该问题,本研究对“非合作型”无人机采用一种基于时差法的无源定位算法对其进行实时定位.基于时差法的无源定位方法是根据求解无人机信号到达主站和各辅站的距离差,并联合各基站坐标所构成的双曲线方程组来实现.该方法定位精度高,且不对外发射信号,可在机场等区域安全使用.

目前,Chan算法和Taylor算法是2种经典的时差定位算法.其中,Chan算法在时差值精确的情况下,可以实现较高精度的定位,但如果时差值精度不够,其定位精度会大幅降低.Taylor算法则是在已有的定位坐标基础上,进行迭代递归,使定位出的坐标接近于目标的真实坐标.虽然Taylor算法定位精度较高,但需要提供初始估计坐标,否则就无法实现准确定位.基于2种算法的特点,本研究提出Chan-Taylor联合算法,其思路是,将Chan算法解算出的目标坐标作为初始估计坐标值赋给Taylor算法进行迭代运算,即使获取的时差值存在一定误差,使初始估计坐标的精度不高,但可以通过迭代来提高定位坐标的精度.通过算法对比和仿真分析表明,Chan-Taylor联合算法较Chan算法具有更高的定位精度和稳定性,较Taylor算法更具有实用性.

2 算法描述
2.1 Chan算法

基于Chan算法的无源定位是通过求解目标源信号到达辅站与主站之间的时差并联立各基站坐标所得的双曲线方程组来实现的.该算法是一种非迭代算法,不需要初始值,在时差精确、视距传输的情况下,其定位效果良好,但在工程上,很难获得满足要求的时差初值.因此,Chan算法可作为其他算法的前置条件.

本研究以4站三维定位系统为例建立3组方程,该方程组为超定方程组.通常情况下,由于该方程组导出的矩阵不存在逆矩阵,方程组无法正常求解.所以,本研究利用伪逆法联合最小二乘法对方程组进行解算,即Chan算法.4站定位系统的定位原理如图1所示.

图1 4站定位系统示意图
图1中,主站坐标联立3个辅站坐标,通过分别计算出的时差可构建3条双曲线,其交点就是无人机的位置.

假设无人机位置为P=[px,py,pz],各基站坐标为Pi=[pix,piy,piz],i∈[0,3],则无人机到基站i的距离ri2可表示为,

本研究若不特别指明,均默认i∈[1,3].对式(1)整理可得,

式中,Ri表示基站i到坐标原点的距离;R0为主站到坐标原点的距离;ri0为无人机到辅站与主站间的距离差.

4站三维定位系统存在一个由3组式(2)的关系式结合而成的方程组,如式(3)所示.当A≠0时,线性方程组(3)有解.

式中,A是方程组的系数矩阵,b是方程组的输出向量.

利用伪逆法可求得无人机坐标为,

2.2 Chan-Taylor联合算法
因为Chan算法是非递归算法,对时差精度要求高,因此,本研究对该算法的定位结果进行二次处理.Taylor算法是利用局部最小二乘解进行迭代[5]的递归算法,其定位精度高,但需要初始估计坐标,否则无法进行定位.

基于低空无人机时差定位的实际需求,本研究结合Chan算法和Taylor算法提出了一种改进的算法,即Chan-Taylor联合算法.Chan-Taylor联合算法是将Chan算法的解算结果作为初始估计坐标送入Taylor算法,以达到对无人机坐标进行误差计算和定位修正的作用.算法在迭代时,将误差与设定的阈值进行比较,若误差值大于阈值,则继续迭代;若误差值小于设定阈值,则终止迭代并输出结果.

2.3 Chan-Taylor联合算法流程及计算原理
Chan-Taylor联合算法流程如图2所示,具体为:首先,算法获得无人机信号到主站与各辅站之间的时差;然后,将时差用于Chan算法部分进行初始估计坐标值的计算,并利用该坐标值在Taylor算法部分做误差向量的计算,用以定位修正;同时,对误差进行阈值比较.如不满足条件,则继续迭代,如满足条件,则结束迭代,并输出最终结果.

图2 Chan-Taylor算法流程

式中,α为目标差值向量,b为时差的差值向量,e为时差估计误差向量,H为时差估计的梯度矩阵.它们可分别表示为,

由式ri0=ri-r0=cτi0与站址坐标,可得,

将式(10)与式(11)联立,化简可得,


二、部分源代码

clear;clc;
C = 300000000; % 光速(米每秒)
R = [1000 2000 3000 4000 5000]; % 小区半径(米)
sgma =30;
Rn =1; %(km)
x_delta = 0;
y_delta = 0;
e = 0;
% 随机产生MS的位置(x,y)
u = rand(1);
y = (R/2)(1-sqrt(u))
v = (sqrt(3)
((R/2)-y))rand(1);
x = sqrt(3)y + v
num = 5;
PPP=1000;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Chan定位算法
for i = 1:num
% 蜂窝系统各基站坐标
X1 = 0;
Y1 = 0;
X2 = R(i)
(1+sqrt(3)/2);
Y2 = 0;
X3 = R(i)
(sqrt(3)/2);
Y3 = R(i)(-3/2);
X4 = R(i)
(-sqrt(3)/2);
Y4 = R(i)(-3/2);
X5 = R(i)
(-1-(sqrt(3)/2));
Y5 = 0;
X6 = R(i)(-sqrt(3)/2);
Y6 = R(i)
(3/2);
X7 = R(i)(sqrt(3)/2);
Y7 = R(i)
(3/2);
% 计算MS到各基站的距离
R1 = distance(X1,Y1,x(i),y(i));
R2 = distance(X2,Y2,x(i),y(i));
R3 = distance(X3,Y3,x(i),y(i));
R4 = distance(X4,Y4,x(i),y(i));
R5 = distance(X5,Y5,x(i),y(i));
R6 = distance(X6,Y6,x(i),y(i));
R7 = distance(X7,Y7,x(i),y(i));

% KM = XM^2 + YM^2
K1 = Ka(X1,Y1);
K2 = Ka(X2,Y2);
K3 = Ka(X3,Y3);
K4 = Ka(X4,Y4);
K5 = Ka(X5,Y5);
K6 = Ka(X6,Y6);
K7 = Ka(X7,Y7);
% XM_1 = XM - X1;YM_1 = YM - X1
X2_1 = Xab(X2,X1);
Y2_1 = Xab(Y2,Y1);
X3_1 = Xab(X3,X1);
Y3_1 = Xab(Y3,Y1);
X4_1 = Xab(X4,X1);
Y4_1 = Xab(Y4,Y1);
X5_1 = Xab(X5,X1);
Y5_1 = Xab(Y5,Y1);
X6_1 = Xab(X6,X1);
Y6_1 = Xab(Y6,Y1);
X7_1 = Xab(X7,X1);
Y7_1 = Xab(Y7,Y1);
t_sgma=10^(-7);
% 各TDOA测量值的方差
D_med1= 1.82*(0.410(-6)*(R1/1000)0.5)^2;
D_med2= 1.82
(0.410(-6)*(R2/1000)0.5)^2;
D_med3= 1.82
(0.410(-6)*(R3/1000)0.5)^2;
D_med4= 1.82
(0.410(-6)*(R4/1000)0.5)^2;
D_med5= 1.82
(0.410(-6)*(R5/1000)0.5)^2;
D_med6= 1.82
(0.410(-6)*(R6/1000)0.5)^2;
D_med7= 1.82
(0.410(-6)*(R7/1000)0.5)^2;
T2_1_fangcha = D_med2+D_med1+2
t_sgma^2;
T3_1_fangcha = D_med3+D_med1+2t_sgma^2;
T4_1_fangcha = D_med4+D_med1+2
t_sgma^2;
T5_1_fangcha = D_med5+D_med1+2t_sgma^2;
T6_1_fangcha = D_med6+D_med1+2
t_sgma^2;
T7_1_fangcha = D_med7+D_med1+2*t_sgma^2;


三、运行结果



四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 罗正华,雷林,周方均,李霞.基于Chan-Taylor联合算法的低空无人机时差定位研究[J].成都大学学报(自然科学版). 2019,38(04)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除


推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了Paxos的世界中关于复制日志与状态机的概念和重要性。通过存储日志来实现数据的持久化,并通过日志流来记录数据的变化,而不是直接持久化数据本身。这样做的好处是简化了持久化存储的操作,并且方便多机之间的数据同步。 ... [详细]
  • 提升Python编程效率的十点建议
    本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ... [详细]
  • 本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdge Runtime的案例,展示了WebAssembly作为原生应用程序的潜力。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文详细介绍了相机防抖的设置方法和使用技巧,包括索尼防抖设置、VR和Stabilizer档位的选择、机身菜单设置等。同时解释了相机防抖的原理,包括电子防抖和光学防抖的区别,以及它们对画质细节的影响。此外,还提到了一些运动相机的防抖方法,如大疆的Osmo Action的Rock Steady技术。通过本文,你将更好地理解相机防抖的重要性和使用技巧,提高拍摄体验。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
author-avatar
自由的成长_563_742_784
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有